XMLWriter 和 XMLReader

一、定义

XMLWriter表示一个写入器,该写入器提供一种快速、非缓存和只进方式以生成包含 XML 数据的流或文件。

XMLReader表示提供对 XML 数据进行快速、非缓存、只进访问的读取器。

命名空间:
        System.Xml
    程序集:
        System.Xml(System.Xml.dll 中)

二、XMLWriter

XMLWriter 创建 XML 声明

    //引入命名空间
    using System.Xml;

    XmlTextWriter textWriter = new XmlTextWriter(@"d:\xmlRead.xml",Encoding.UTF8);
    textWriter.WriteStartDocument();

XMLWriter 创建节点

    textWriter.WriteStartElement(“root"); 
    textWriter.WriteStartElement(“Child");
    // 为元素加入属性
    textWriter.WriteElementString(“SubChild”, “这是元素内容");
    textWriter.WriteEndElement();
    textWriter.WriteEndElement();

XMLWriter为元素加入属性

    textWriter.WriteStartElement("Child");
    textWriter.WriteAttributeString("属性A","A");
    textWriter.WriteAttributeString("属性B","B");
    textWriter.WriteEndElement();

XMLWrite写入注释

    textWriter.WriteComment(“注释内容");
    textWriter.WriteCData(“<strong>CData 内容</strong>");

XMLWrite创建XML 要点

    XMLWrite 子节点 和属性 必须在WriteEndElement()方法前。
    开始写入,调用WriteStartDocument方法。
    写入结束,调用WriteEndDocument方法,和Close方法,关闭流。

三、XMLReader

XmlReader读取XML

    //读取一个外部XML
    XmlTextReader textReader = new XmlTextReader(@"d:\xmlRead.xml");

XmlReader读取节点信息

    while (textReader.Read())
    {
        if (textReader.NodeType == XmlNodeType.Element)
        {
            Console.WriteLine("Name:" + textReader.Name);
            Console.WriteLine("Value:" + textReader.ReadString());
        }
    }

XmlReader读取属性

    //方式一:取得当前Reader元素的指定名称的属性值;
    textReader.GetAttribute(“属性A”);

    //方式二,获取当前Reader元素的属性,将Reader移动到当前属性;    
    for (int i = 0; i < textReader.AttributeCount; i++)
    {
        textReader.MoveToAttribute(i);
        Console.WriteLine("AttributeName:" + textReader.Name);
        Console.WriteLine("AttributeValue:" + textReader.Value);
    }

🔚